<?php
// tabele PhotoGallery
define('PGCATEGO','photog_category');
define('PGCATELA','photog_category_lang');
define('PGPHOTOS','photog_photos');
define('PGPHOTLA','photog_photos_lang');
define('PGSETTIN','photog_settings');
	
include_once 'PhotoGalleryModel.php';

class PhotoGalleryController extends PhotoGalleryModel {
	private $vars;
	protected $PhotoGalleryRoot;			// sciezka do folderu galerii
	protected $db;							// obiekt bazy SQLite PhotoGallery
	protected $maxfilesize; 				// maksymalny rozmair pliku

#TODO public	
	public function __construct($opc=null){
		global $config,$parameters;
		$this->vars = (is_string($config->parameters)) ? explode(',',$config->parameters) : explode(',',$opc);

		$this->PhotoGalleryRoot  = "../public/users/".str_replace('www.','',$_SERVER['HTTP_HOST'])."/PhotoGallery/";
		tools::_add_folder($this->PhotoGalleryRoot);
		// sciezka do root bazy danych photogallery
		tools::_add_folder($parameters['photogallery']['host']);
		// maksymalna pojemnosc pliku
		$this->maxfilesize = $parameters['photogallery']['maxfilesize'];
		// określenie nazwy bazy photogallery
		$nazwa_bazy__ = str_replace('www.','',$_SERVER['HTTP_HOST']).".db";
		// przygotowanie parametrów do zalozenia bazy
		$parametryBazyPhotoGallery = array('drivers'=>array('driver'=>'sqlite'),
							  'sqlite'=>array('host'=>$parameters['photogallery']['host'],
											  'database'=>$nazwa_bazy__ ));
		$this->db = config::getDB($parametryBazyPhotoGallery);
		// ustawienia
		tools::_assign("settings_photogallery",$this->pobierzUstawienia());
		
		PhotoGalleryController::uprawnienia();
		
		$parameters['sqlite']['host'] = $parameters['photogallery']['host'];
		$parameters['drivers']['dbinstall'] = $parameters['photogallery']['dbinstall'];
		config::_instal_database($parameters['drivers']['driver'],$this->db);		
	}
	
	
	public function indexAction(){
		global $objSession,$config;
		$toolbar__0 = array(',,nowa_kategoria'=>array('nazwa'=>'Dodaj galerię','ikona'=>'32_new_group.gif'));
		$toolbar__1 = array(",,dodajZdjecie,{$this->vars[2]}"=>array('nazwa'=>'Dodaj zdjęcie','ikona'=>'32_new.gif'),',,edytuj_kategorie'=>array('nazwa'=>'Edytuj dane galerii','ikona'=>'32_edit.gif'));
		$toolbar__2 = array(',PhotoGallery,wyzerujUstawienia'=>array('nazwa'=>'Ustawienia domyślne','ikona'=>'32_settings_default.gif'));
		tools::_display("PhotoGallery/css.tpl");
	
		switch($this->vars[1]){
			case 'nowa_kategoria':
				if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){ tools::_redirect('zaloguj_sie.html'); return;}
				PhotoGalleryController::toolbar($toolbar__0);
				tools::_display("PhotoGallery/dodaj_kategorie.tpl");
				tools::_display("PhotoGallery/footer-main.tpl");				
				break;
				
			case 'edytuj_kategorie':
				if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){ tools::_redirect('zaloguj_sie.html'); return;}
				PhotoGalleryController::toolbar($toolbar__0);
				tools::_assign('kateg',$this->pobiezKategorie($this->vars[2]));
				tools::_display("PhotoGallery/edytuj_kategorie.tpl");	
				tools::_display("PhotoGallery/footer-main.tpl");			
				break;

			case 'edytujZdjecie':
				if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){ tools::_redirect('zaloguj_sie.html'); return;}
				PhotoGalleryController::toolbar($toolbar__0);
				tools::_assign('kateg',$this->pobiezKategorie($this->vars[2],$config->__lang));
				tools::_assign('photo',$this->pobiezJednoZdjecie($this->vars[3]));
				tools::_display("PhotoGallery/edytuj_zdjecie.tpl");		
				tools::_display("PhotoGallery/footer-main.tpl");		
				break;
				
			case 'wyswietlZdjecia':
				tools::_assign('kateg',$this->pobiezKategorie($this->vars[2]));				
				$this->wyswietlZdjecia(null,$toolbar__1);
				
				// lista malych kategorii
				$iloscPg__ = $this->zliczAktywneGalerie();
				if ($iloscPg__ > 1 ){					
					$gallery__ = $this->pobiezKategorie();
					tools::_assign("kategorie",$gallery__);
					tools::_display("PhotoGallery/lista_kategorii_male.tpl");
					tools::_display("PhotoGallery/footer-main.tpl");
				}
				
				break;
				
			case 'dodajZdjecie':
				if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){ tools::_redirect('zaloguj_sie.html'); return;}
				PhotoGalleryController::toolbar($toolbar__1);
				tools::_assign('kateg',$this->pobiezKategorie($this->vars[2],$config->__lang));
				tools::_display("PhotoGallery/dodaj_zdjecie.tpl");
				tools::_display("PhotoGallery/footer-main.tpl");
				break;
								
			case 'ustawienia_photogallery':
				PhotoGalleryController::toolbar($toolbar__2);
				tools::_display("PhotoGallery/ustawienia.tpl");
				tools::_display("PhotoGallery/footer-main.tpl");
				break;
				
			default:
				// lista kategorii z przykładowymi zdjęciami				
				$iloscPg__ = $this->zliczAktywneGalerie();
				if ($iloscPg__ == 1 && !$objSession->IsLoggedIn() ){					
					$this->wyswietlZdjecia($this->domyslnaGaleria(),$toolbar__1);				
				}else{
					PhotoGalleryController::toolbar($toolbar__0);
					$gallery__ = $this->pobiezKategorie();
					$gallery__ = (is_array($gallery__)) ? $gallery__ : array();
					tools::_assign("kategorie",$gallery__);
					tools::_display("PhotoGallery/lista_kategorii.tpl");
					tools::_display("PhotoGallery/footer-main.tpl");
				}
				tools::_display("PhotoGallery/footer-main.tpl");
		}
	}
	
#TODO private
	private function wyswietlZdjecia($pgIDDefault=null,$toolbar){
		global $objSession,$config;
		if(!is_null($pgIDDefault)) $this->vars[2] = $pgIDDefault;
		
		tools::_assign('kateg',$this->pobiezKategorie($this->vars[2],$config->__lang));
		$logged = ($objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a') ? 1 : 0;
		$ilosc_zdjec = $this->zliczZdjeciaGalerii($this->vars[2]);
		
		if($logged){
			PhotoGalleryController::toolbar($toolbar);
			if($ilosc_zdjec == 0){ 	
				echo 'Brak zdjęc';			
				tools::_display("PhotoGallery/dodaj_zdjecie.tpl");
			}else{
				tools::_assign('photos',$this->pobiezJednaGalerie($this->vars[2],$config->__lang));
				tools::_display("PhotoGallery/lista_zdjec_galerii.tpl");
			}
		}else{
			tools::_assign('photos',$this->pobiezJednaGalerie($this->vars[2],$config->__lang, 'AND phStatus = 0'));
			tools::_display("PhotoGallery/lista_zdjec_galerii.tpl");
			
		}
	}
	
	private static function toolbar($tool__){
		global $objSession;
		tools::_assign("toolbar_links",$tool__);		
		if ( $objSession->IsLoggedIn() && $objSession->GetUserData("stanowisko") == 'a') 
		tools::_display("PhotoGallery/toolbar.tpl");
	}
	
	private static function uprawnienia(){
		global $objSession;
		if ( $objSession->IsLoggedIn() && $objSession->GetUserData("stanowisko") == 'a') 
		tools::_assign("uprawnienia",1);
	}
	
	private function iterateVars() {
		foreach($this as $key => $value) {
			try{
				if (is_array($value)) $value = print_r($value,true);
				if (!is_object($value))
				print "$key => $value\n<br/>";  
			}catch (Exception $e){
				echo "Obiekt => print error \n<br/>"; 
			}
		}
    }

#TODO forms

	public function zapiszUstawieniaAction(){
		global $config, $objSession;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){	
			tools::_redirect('zaloguj_sie.html'); return;
		}
	
		$this->zapiszUstawienia();
		tools::_redirect($config->page.".html",null,0,'php');
	}
	
	public function zapiszNowaKategorieAction(){
		global $config, $objSession;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){	
			tools::_redirect('zaloguj_sie.html'); return;
		}
	
		$pgID = $this->zapiszNowaKategorie();
		tools::_redirect($config->page.",,wyswietlZdjecia,$pgID,.html",null,0,'php');		
	}
	
	public function zapiszEdytowanaKategorieAction(){
		global $config, $objSession;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){	
			tools::_redirect('zaloguj_sie.html'); return;
		}
		$this->zapiszEdytowanaKategorie();
		tools::_redirect($config->page.".html",null,0,'php');		
	}
	
	public function pgKategoriaUpAction(){
		global $config, $objSession;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){	
			tools::_redirect('zaloguj_sie.html'); return;
		}
		$this->pgLpUp($this->vars[2]);
		tools::_redirect($config->page.".html",null,0,'php');		
	}
	
	public function pgKategoriaDownAction(){
		global $config, $objSession;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){	
			tools::_redirect('zaloguj_sie.html'); return;
		}
		$this->pgLpDown($this->vars[2]);
		tools::_redirect($config->page.".html",null,0,'php');		
	}

	public function phUpAction(){
		global $config, $objSession;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){	
			tools::_redirect('zaloguj_sie.html'); return;
		}
		$this->phLpUp($this->vars[3]);
		tools::_redirect($config->page.",,wyswietlZdjecia,{$this->vars[2]}.html",null,0,'php');		
	}
	
	public function phDownAction(){
		global $config, $objSession;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){	
			tools::_redirect('zaloguj_sie.html'); return;
		}
		$this->phLpDown($this->vars[3]);
		tools::_redirect($config->page.",,wyswietlZdjecia,{$this->vars[2]}.html",null,0,'php');		
	}
	
	public function zablokujZdjecieAction(){
		global $config, $objSession;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){	
			tools::_redirect('zaloguj_sie.html'); return;
		}
		$this->zablokujOdblokujZdjecie($this->vars[3]);
		tools::_redirect($config->page.",,wyswietlZdjecia,{$this->vars[2]}.html",null,0,'php');		
	}

	
	public function zablokujGalerieAction(){
		global $config, $objSession;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){	
			tools::_redirect('zaloguj_sie.html'); return;
		}
		$this->zablokujOdblokujGalerie($this->vars[2]);
		tools::_redirect($config->page.".html",null,0,'php');		
	}
	
	public function zapiszNoweZdjecieAction(){
		global $config, $objSession;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){	
			tools::_redirect('zaloguj_sie.html'); return;
		}
		$this->zapiszPlikiGalerii($config->pgID);	
		tools::_redirect($config->page.",,wyswietlZdjecia,{$config->pgID}.html",null,0,'php');	
	}

	public function zapiszEdytowaneZdjecieAction(){
		global $config, $objSession;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){	
			tools::_redirect('zaloguj_sie.html'); return;
		}
		
		$this->zapiszDanePlikuPhotoGallery($config->phID);		
		$this->podmienPlikGalerii();
		tools::_redirect($config->page.",,wyswietlZdjecia,{$config->pgID}.html",null,0,'php');		
	}
	
	public function usunZdjecieAction(){
		global $config, $objSession;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){	
			tools::_redirect('zaloguj_sie.html'); return;
		}
		$this->usunZdjeciePG($this->vars[3]);
		tools::_redirect($config->page.",,wyswietlZdjecia,{$this->vars[2]}.html",null,0,'php');
	}
	
	public function usunGalerieAction(){
		global $config, $objSession;
		if ( !$objSession->IsLoggedIn()  && $objSession->GetUserData("stanowisko") == 'a'){	
			tools::_redirect('zaloguj_sie.html'); return;
		}
		$this->usunZdjeciaGalerii($this->vars[2]);
		tools::_redirect($config->page.".html",null,0,'php');
		
	}
	
	public function ikonyGaleriiAction($v=null){
		$params = (is_string($v)) ? explode(';',$v) : null;	
		$ikona__ = $this->pobiezIkonkeKategorii($params[0],$params[1]);
		tools::_assign('icon',$ikona__);	
		tools::_display("PhotoGallery/lista_kategorii_ikonki_duze.tpl");
	}
	
	public function ikonyGaleriiMaleAction($v=null){
		$params = (is_string($v)) ? explode(';',$v) : null;	
		$ikona__ = $this->pobiezIkonkeKategorii($params[0],$params[1]);
		tools::_assign('icon',$ikona__);	
		tools::_display("PhotoGallery/lista_kategorii_ikonki_male.tpl");
	}
	
	public function wyzerujUstawieniaAction(){
		global $config;
		echo $this->wyzerujUstawieniaPG();
		// ustawienia
		tools::_assign("settings_photogallery",$this->pobierzUstawienia());
		tools::_redirect($config->page.",,ustawienia_photogallery.html",null,0,'php');
	}
}